iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
AI/ ML & Data

從0開始的影像辨識之路系列 第 10

Tensorflow-python:語意分割-3-模型實際使用(Day 9)

  • 分享至 

  • xImage
  •  

本次主題是以colab的環境進行學習的,在本篇文章中,我將講解影像辨識的基礎技能在接下來的文章中這些技能將多次出現,先讀過這些語法再繼續去看後面的文章會比較能快速上手喔。依照進度每個禮拜都會記錄不同的影像辨識方法,基本順序會從:

  1. OpenCV
  2. 圖片分類(Tensorflow-Image classification)
  3. 語意分割(Semantic Segmentation)
  4. 生成模仿圖片(CycleGAN and pix2pix in PyTorch)
  5. 物件辨識(tensorflow object detection)
  6. 額外分享(MediaPipe)

在我們上一篇文章中我們已經把模型準備好了,接下來我們就回到colab裡面進行語意分割吧。老樣子先把雲端硬碟掛載到colab上。
雲端硬碟掛載:

from google.colab import drive
drive.mount('/content/drive')

將雲端硬碟掛載好之後,我們先載入上次訓練的模型。
模型載入及預測:

model = keras.models.load_model("/content/drive/MyDrive/fit/model_1.h5")
#model.fit(train_gen,validation_data=val_gen, epochs=epochs)
model.summary()
val_gen = data_read(batch_size, img_size, val_input_img_paths,val_target_img_paths)

num_classes = 21
batch_size = 8
img_size = (160, 160)

def run_test(imagefile):
    image_np = cv.imread("/content/drive/MyDrive/fit/test/"+imagefile)
    image_np = cv.resize(image_np[:,:,::-1],
                                   (160,
                                    160))
    image_np = np.expand_dims(image_np,axis=0)
    val_preds = model.predict(image_np)
    mask = np.argmax(val_preds[0], axis=-1)
    mask = np.expand_dims(mask, axis=-1)
    img = PIL.ImageOps.autocontrast(keras.preprocessing.image.array_to_img(mask))
    img = img.resize((540, 540))
    img.save("/content/drive/MyDrive/fit/test/mask_"+imagefile)
    img2 = cv.imread("/content/drive/MyDrive/fit/test/mask_"+imagefile)
    img2 = cv.resize(img2, (1920, 1080),cv.INTER_CUBIC)
    img2 = np.around(img2)
    print(*np.array(img2))
    plt.imshow(img2,cmap="gray")
    plt.show()
    # cv.imwrite("/content/drive/MyDrive/fit/test/"+imagefile,img)
run_test("images_car.jpg")
print('Done.')

原始圖片:

實際預測結果:

fit的資料夾共享:
https://drive.google.com/drive/folders/1_I7ze_S5Sg3-ACmFOB2nXhudWex0hd1L?usp=sharing

預測結果感覺不佳主要原因是因為訓練次數不夠,可以自行增加訓練次數,效果應該會更好。
如果實際預測上遇到甚麼問題或是error的話歡迎丟到留言區討論喔!


文章主題一覽:

  1. OpenCV-python:影像辨識基礎技能-1(Day 1)
  2. OpenCV-python:影像辨識基礎技能-2(Day 2)
  3. OpenCV-python:影像辨識的基礎臉部偵測-加碼更新(Day 2)

  1. Tensorflow-python:圖片分類-1-資料集準備(Day 3)
  2. Tensorflow-python:圖片分類-2-模型訓練(Day 4)
  3. Tensorflow-python:圖片分類-3-模型實際使用(Day 5)
  4. Tensorflow-python:圖片分類-4-完整程式總結(Day 6)

  1. Tensorflow-python:語意分割-1-資料集介紹(Day 7)
  2. Tensorflow-python:語意分割-2-模型訓練(Day 8)
  3. Tensorflow-python:語意分割-3-模型實際使用(Day 9)
  4. Tensorflow-python:語意分割-4-完整程式總結(Day 10)

  1. CycleGAN-python:生成相似圖片「由簡化繁」-1-資料集介紹(Day 11)
  2. CycleGAN-python:生成相似圖片「由簡化繁」-2-模型訓練(Day 12)
  3. CycleGAN-python:生成相似圖片「由簡化繁」-3-模型實際使用(Day 13)
  4. CycleGAN-python:生成相似圖片「由簡化繁」-4-完整程式總結(Day 14)
  5. CycleGAN-python:生成相似圖片「由繁化簡」-1-資料集介紹(Day 15)
  6. CycleGAN-python:生成相似圖片「由繁化簡」-2-模型訓練(Day 16)
  7. CycleGAN-python:生成相似圖片「由繁化簡」-3-模型實際使用(Day 17)
  8. CycleGAN-python:生成相似圖片「由繁化簡」-4-完整程式總結(Day 18)

  1. tensorflow-object-detection:物件辨識-1-資料集介紹(Day 19)
  2. tensorflow-object-detection:物件辨識-2-模型訓練(Day 20)
  3. tensorflow-object-detection:物件辨識-3-模型實際使用(Day 21)
  4. tensorflow-object-detection:物件辨識-4-完整程式總結(Day 22)

  1. MediaPipe:額外分享-1-手部追蹤(Day 23)
  2. MediaPipe:額外分享-2-人臉檢測(Day 24)
  3. MediaPipe:額外分享-2-物體檢測(Day 25)

  1. Tensorflow-python:圖片分類-1-模型介紹(Day 26)
  2. Tensorflow-python:圖片分類-2-變形應用(Day 27)
  3. Tensorflow-python:語意分割-1-模型介紹(Day 28)
  4. Tensorflow-python:語意分割-2-變形應用(Day 29)
  5. CycleGAN-python:生成相似圖片-1-模型介紹(Day 30)
  6. CycleGAN-python:生成相似圖片-2-變形應用(Day 31)

粗體字為額外更新的文章。


上一篇
Tensorflow-python:語意分割-2-模型訓練(Day 8)
下一篇
Tensorflow-python:語意分割-4-完整程式總結(Day 10)
系列文
從0開始的影像辨識之路31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言